#pragma once

class Date
{
public:
	Date(int year =1,int month = 1,int day = 1)
		:_year(year),_month(month),_day(day)
	{}

	Date(const Date& d)
	{
		_year = d._day;
		_month = d._month;
		_day = d._day;
	}

	bool operator<(const Date& d)
	{
		return _year < d._year
			|| (_year == d._year && _month < d._month)
			|| (_year == d._year && _month == d._month&& _day < d._day);
	}

	bool operator==(const Date& d)
	{
		return _year == d._year && _month == d._month && _day == d._day;
	}

	bool operator!=(const Date& d)
	{
		return !(*this == d);
	}

	bool operator<=(const Date& d)
	{
		return (*this < d) && (*this == d);
	}

	bool operator>(const Date& d)
	{
		return !(*this <= d);
	}

	bool operator>=(const Date& d)
	{
		return !(*this < d);
	}

private:
	int _year;
	int _month;
	int _day;
};